package com.xcm.cloud.common;

import org.springframework.http.HttpStatus;


/**
 * 控制器基类，返回嵌套结构的数据结构
 */
@SuppressWarnings("all")
public abstract class BaseController {
    private static final String MSG_SUCCESS = "success";


    /**
     * 成功返回，携带业务数据
     * @param data 业务数据
     * @param <T> 业务模型泛型
     * @return
     */
    protected <T> ResultBean<T> success(T data){
        return new ResultBean<T>(data, HttpStatus.OK.value(),MSG_SUCCESS);
    }

    /**
     * 成功返回，携带消息
     * @param msg 消息
     * @return
     */
    protected ResultBean success(String msg){
        return new ResultBean(null,HttpStatus.OK.value(),msg);
    }

    /**
     *  成功返回，携带业务数据与消息
     * @param data 业务数据
     * @param msg 消息
     * @param <T> 业务模型泛型
     * @return
     */
    protected <T> ResultBean<T> success(T data,String msg){
        return new ResultBean<T>(data,HttpStatus.OK.value(),msg);
    }

}
